package ar.edu.untref.lp1.plomeria.modelos;

public class Casillero {
	
	private Material material;
	private int fila;
	private int columna;

	public Casillero(Material unMaterial, int columna, int fila){
		this.setFila(fila);
		this.setColumna(columna);
		this.setMaterial(unMaterial,columna,fila);
	}

	/**
	 * Post: Devuelve el material del casillero
	 */
	public Material getMaterial() {
		return material;
	}

	/**
	 * Post: Asigna un material al casillero
	 */
	public void setMaterial(Material material, int columna, int fila) {
		if (material == null) {
			Error errorEnAsignacionDeMaterial = new Error("No se puede crear un casillero sin material [columna:"+columna+"] [fila:"+fila+"]");
			throw errorEnAsignacionDeMaterial;
		}
		this.material = material;
	}

	/**
	 * Post: Devuelve la fila en la que se encuentra el casillero
	 */
	public int getFila() {
		return fila;
	}

	/**
	 * Pre: Ingresa la fila en la que se encuentra el casillero
	 */
	public void setFila(int fila) {
		if(fila < 0 ){
			throw new Error("La fila no puede ser menor que 0, se recibio " + fila);
		}
		this.fila = fila;
	}

	/**
	 * Post: Devuelve la columna en la que se encuentra el casillero
	 */
	public int getColumna() {
		return columna;
	}

	/**
	 * Pre: Ingresa la columna en la que se encuentra el casillero
	 */
	public void setColumna(int columna) {
		if(columna < 0 ){
			throw new Error("La columna no puede ser menor que 0, se recibio " + columna);
		}
		this.columna = columna;
	}
}
